<?php
namespace app\queue\controller;

use app\BaseController;
// use think\Queue;
use think\facade\Queue;

class Index extends BaseController
{


     // 使用数据库驱动需要创建存放消息的数据表
     // CREATE TABLE `prefix_jobs` (
     // `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
     // `queue` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '队列名称',
     // `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '有效负载',
     // `attempts` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '重试次数',
     // `reserved` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '订阅次数',
     // `reserved_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '订阅时间',
     // `available_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '有效时间',
     // `created_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
     // PRIMARY KEY (`id`)
     // ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息队列';


    /*
     * 测试队列
     *
     * 安装tp官方类库 thinkphp-queue
     * composer install topthink/think-queue
     * 队列配置文件在config文件夹中的queue.php
     * use think\facade\Queue; tp5引入use think\Queue;(未测试)
     * php think queue:work --queue StudyQueue (php监听)
     * php think queue:work --daemon  (进程循环)
     * */
    public function index(){
        /*
         * 'app\queue\controller\dong'  队列消息处理方法
         * ['id'=>1]                    队列data
         * StudyQueue                   队列名称
         * */
        $isPushed = Queue::push('app\queue\controller\dong', ['id'=>1], "StudyQueue");

        // 如下单后10分钟不支付即关闭订单
        $isPushed = Queue::later(60*10, 'app\queue\controller\dong', ['id'=>1], "StudyQueue");

        // database 驱动时返回值为 1|false  ;   redis 驱动时返回值为 随机字符串|false
        if($isPushed !== false){
            echo date('Y-m-d H:i:s') . " 添加新队列成功 " . "<br>";
        }
    }





}